# from skimage import data
# import numpy as np
# from matplotlib import pyplot as plt
# """
# 中文显示工具函数
# """
# def set_ch():
#     from pylab import mpl
#     mpl.rcParams['font.sans-serif']=['FangSong']
#     mpl.rcParams['axes.unicode_minus']=False
# set_ch()

# img = data.camera()
# f = np.fft.fft2(img) # 快速傅里叶变换算法得到频率分布
# fshift = np.fft.fftshift(f) # 默认结果中心点位置是在左上角，转移到中间位置

# fimg = np.log(np.abs(fshift)) # fft 结果是复数，求绝对值结果才是振幅

# # 展示结果
# plt.subplot(121), plt.imshow(img, 'gray'), plt.title('原始图像')
# plt.subplot(122), plt.imshow(fimg, 'gray'), plt.title('傅里叶频谱')
# plt.show()


from skimage import data, io, color
import numpy as np
from matplotlib import pyplot as plt

# 中文显示工具函数
def set_ch():
    from pylab import mpl
    mpl.rcParams['font.sans-serif'] = ['FangSong']
    mpl.rcParams['axes.unicode_minus'] = False
set_ch()

# 使用imread方法读入lena图片数据
img = io.imread('lena.bmp')

# 将lena图像转换为灰度图像
gray_img = color.rgb2gray(img)

# 显示灰度图像
plt.subplot(131), plt.imshow(gray_img, 'gray'), plt.title('灰度图像')

# 求出灰度图像的频谱
f = np.fft.fft2(gray_img)  # 快速傅里叶变换算法得到频率分布
fshift = np.fft.fftshift(f)  # 默认结果中心点位置是在左上角，转移到中间位置
fimg = np.log(np.abs(fshift))  # fft 结果是复数，求绝对值结果才是振幅

# 显示频谱图像
plt.subplot(132), plt.imshow(fimg, 'gray'), plt.title('傅里叶频谱')

# 显示原始彩色图像
plt.subplot(133), plt.imshow(img), plt.title('原始图像')

plt.show()




# from skimage import data, transform, filters
# import numpy as np
# import matplotlib.pyplot as plt

# # 读取摄影师图像
# img = data.camera()

# # 旋转图像
# img2 = transform.rotate(img, angle=45, resize=True)

# # 计算傅里叶频谱
# img_fft = np.fft.fft2(img)
# img_fft_shift = np.fft.fftshift(img_fft)
# img_fft_shift_log = np.log(1 + np.abs(img_fft_shift))

# img2_fft = np.fft.fft2(img2)
# img2_fft_shift = np.fft.fftshift(img2_fft)
# img2_fft_shift_log = np.log(1 + np.abs(img2_fft_shift))

# # 显示图像
# plt.rcParams['font.sans-serif'] = ['SimHei'] 
# plt.rcParams['axes.unicode_minus'] = False
# plt.figure(figsize=(12, 6))

# plt.subplot(2, 2, 1)
# plt.axis('off')
# plt.imshow(img, cmap = 'gray')
# plt.title('原图像')

# plt.subplot(2, 2, 2)
# plt.axis('off')
# plt.imshow(img_fft_shift_log, cmap = 'gray')
# plt.title('原图像傅里叶频谱')

# plt.subplot(2, 2, 3)
# plt.axis('off')
# plt.imshow(img2, cmap = 'gray')
# plt.title('旋转图像')

# plt.subplot(2, 2, 4)
# plt.axis('off')
# plt.imshow(img2_fft_shift_log, cmap = 'gray')
# plt.title('旋转图像傅里叶频谱')

# plt.show()
